package model

import (
	"gorm.io/gorm"
	"time"
)

// Live 直播表
type Live struct {
	Id        uint           `gorm:"column:id;type:bigint UNSIGNED;primaryKey;not null;" json:"id"`
	UserId    uint           `gorm:"column:user_id;type:bigint UNSIGNED;comment:用户id;not null;default:0;" json:"user_id"`                        // 用户id
	Cover     string         `gorm:"column:cover;type:varchar(255);comment:直播封面;not null;" json:"cover"`                                       // 直播封面
	Name      string         `gorm:"column:name;type:varchar(30);comment:昵称;not null;" json:"name"`                                              // 昵称
	Sex       uint           `gorm:"column:sex;type:int UNSIGNED;comment:性别 0:男 1:女;not null;default:0;" json:"sex"`                           // 性别 0:男 1:女
	Status    uint           `gorm:"column:status;type:int UNSIGNED;comment:状态 0:直播中 1:已下播;not null;default:0;" json:"status"`             // 状态 0:直播中 1:已下播
	CreatedAt time.Time      `gorm:"column:created_at;type:datetime(3);comment:开播时间;not null;default:CURRENT_TIMESTAMP(3);" json:"created_at"` // 开播时间
	DeletedAt gorm.DeletedAt `gorm:"column:deleted_at;type:datetime(3);comment:结束时间;default:NULL;" json:"deleted_at"`                          // 结束时间
}

func (l *Live) TableName() string {
	return "live"
}

// LiveUser 直播间成员表
type LiveUser struct {
	Id        uint           `gorm:"column:id;type:bigint UNSIGNED;primaryKey;not null;" json:"id"`
	LiveId    uint           `gorm:"column:live_id;type:bigint UNSIGNED;comment:直播间id;not null;default:0;" json:"live_id"`                              // 直播间id
	UserId    uint           `gorm:"column:user_id;type:bigint UNSIGNED;comment:用户id;not null;default:0;" json:"user_id"`                                // 用户id
	CreatedAt time.Time      `gorm:"column:created_at;type:datetime(3);comment:进入直播间的时间;not null;default:CURRENT_TIMESTAMP(3);" json:"created_at"` // 进入直播间的时间
	DeletedAt gorm.DeletedAt `gorm:"column:deleted_at;type:datetime(3);comment:离开直播间的时间;default:NULL;" json:"deleted_at"`                          // 离开直播间的时间
}

func (l *LiveUser) TableName() string {
	return "live_user"
}
